<template>
  <div class="contarner-page" @click.stop="showLanguageHandel">
    <page-header ref="languageRef"></page-header>
    <main>
      <div class="downloader flex_ccenter" v-if="!success">
        <div class="container">
          <div class="hero-widgets flex_between c-fff">
            <div class="tool-item shou flex_center" @click="changeTab(0)">
              <img src="/static/images/video.svg" alt="savinginsta video" />
              <span class="f-16">Video</span>
            </div>
            <div class="tool-item shou flex_center" @click="changeTab(1)">
              <img src="/static/images/Photo.svg" alt="savinginsta photo" />
              <span class="f-16">Photo</span>
            </div>
            <div class="tool-item shou flex_center" @click="changeTab(2)">
              <img src="/static/images/Reels.svg" alt="savinginsta reels" />
              <span class="f-16">Reels</span>
            </div>
            <div class="tool-item shou flex_center" @click="changeTab(3)">
              <img src="/static/images/Story.svg" alt="savinginsta story" />
              <span class="f-16">Story</span>
            </div>
            <div class="tool-item shou flex_center" @click="changeTab(4)">
              <img src="/static/images/Igtv.svg" alt="savinginsta IGTV" />
              <span class="f-16">IGTV</span>
            </div>
          </div>
          <div class="banner-heading flex_ccenter">
            <div class="heading-item" v-show="current == 0">
              <h1 class="title fw700 f-42 c-fff">
                Pengunduhan Video Instagram
              </h1>
              <h2 class="sub c-fff f-18 fw400">
                Unduh Video Instagram, Foto, Reel, Cerita, dan IGTV Konten
                Daring
              </h2>
            </div>
            <div class="heading-item" v-show="current == 1">
              <nuxt-link to="/id/instagram-photo-download">
                <div @click="goToTop('Photo')" class="tItem">
                  <h3 class="title fw700 f-42 c-fff shou">
                    Pengunduh Foto Instagram
                  </h3>
                </div>
              </nuxt-link>
              <p class="sub c-fff f-18 fw400">
                Masukkan URL FOTO Instagram di bawah
              </p>
            </div>
            <div class="heading-item" v-show="current == 2">
              <nuxt-link to="/id/instagram-reels-video-download">
                <div @click="goToTop('reels')" class="tItem">
                  <h3 class="title fw700 f-42 c-fff shou">
                    Unduh Reel Instagram
                  </h3>
                </div>
              </nuxt-link>
              <p class="sub c-fff f-18 fw400">
                Masukkan URL Reel Instagram di bawah
              </p>
            </div>
            <div class="heading-item" v-show="current == 3">
              <nuxt-link to="/id/instagram-story-download">
                <div @click="goToTop('story')" class="tItem">
                  <h3 class="title fw700 f-42 c-fff shou">
                    Unduh Cerita Instagram
                  </h3>
                </div>
              </nuxt-link>
              <p class="sub c-fff f-18 fw400">
                Masukkan URL Cerita Instagram di bawah
              </p>
            </div>
            <div class="heading-item" v-show="current == 4">
              <nuxt-link to="/id/igtv-downloader">
                <div @click="goToTop('igtv')" class="tItem">
                  <h3 class="title fw700 f-42 c-fff shou">Unduh Video IGTV</h3>
                </div>
              </nuxt-link>
              <p class="sub c-fff f-18 fw400">
                Masukkan URL IGTV Instagram di bawah
              </p>
            </div>
          </div>
          <div class="form flex_center">
            <div class="input-box flex_between">
              <!-- <input
                type="text"
                class="input f-18"
                v-model="input"
                @input="handleInput"
                @paste="handleInput"
                placeholder="Paste URL Instagram"
                list="fruits"
                name="fruit"
              />
              <datalist id="fruits">
                <option value="Apple"></option>
                <option value="Banana"></option>
                <option value="Cherry"></option>
              </datalist> -->
              <input
                type="text"
                class="input f-18"
                v-model="input"
                :disabled="isHttpLoading"
                @input="handleInput"
                @paste="handleInput"
                @keydown="sendDownload($event)"
                placeholder="Paste URL Instagram"
              />
              <div
                class="Paste shou flex_center"
                @click="handleClickPasted"
                v-if="input == ''"
              >
                <div class="btnbg"></div>
                <div class="f-16 c-000 fw700">Paste</div>
              </div>
              <div
                class="clear shou flex_center"
                v-if="input != '' && !isHttpLoading"
                @click.stop="input = ''"
              >
                <div class="btnbg"></div>
                <div class="f-16 c-000 fw700">Clear</div>
              </div>
            </div>
            <div
              v-if="!isHttpLoading"
              @click.stop="downloadHandel"
              class="submit shou fw700 c-fff flex_center"
            >
              Download
            </div>
            <div v-else class="submit shou fw700 c-fff flex_center">
              Please wait
            </div>
          </div>
          <div class="app-submit flex_ccenter">
            <div
              class="submit flex_center"
              v-if="!isHttpLoading"
              @click.stop="downloadHandel"
            >
              <div class="fw700 c-fff f-21">Download</div>
            </div>
            <div class="submit flex_center" v-else>
              <div class="fw700 c-fff f-21">Please wait</div>
            </div>
          </div>
          <div class="loading" v-if="isHttpLoading">
            <div class="loading-dots flex_center">
              <div class="dot"></div>
              <div class="dot"></div>
              <div class="dot"></div>
              <div class="dot"></div>
            </div>
            <div class="tips f-18 flex_center">
              <div>Mengambil data, harap tunggu beberapa detik!</div>
            </div>
          </div>
          <div class="error flex_ccenter" v-if="httpError1">
            <div class="hono flex_">
              <div class="error-img"></div>
              <div class="error-img"></div>
              <div class="error-img"></div>
            </div>
            <div class="errMsg f-18">
              Situs tidak dapat memproses tautan Anda karena bersifat pribadi
            </div>
          </div>
          <div class="error flex_ccenter" v-if="httpError2">
            <div class="hono flex_">
              <div class="error-img"></div>
              <div class="error-img"></div>
              <div class="error-img"></div>
            </div>
            <div class="errMsg f-18">
              Data yang Anda masukkan bukan link. Silakan masukkan tautan yang
              valid, untuk contoh:
              <div>https://www.instagram.com/reel/Cml9qu-ISqx</div>
            </div>
          </div>
        </div>
      </div>
      <!-- 广告位start -->
      <!-- 广告位end -->
      <div class="container" v-if="!success">
        <div class="body-content">
          <div class="title-box">
            <h3 class="title f-36 c-000 italic">Semua fitur Savinginsta.Com</h3>
            <p class="sub f-16 c-ccc">
              Savinginsta kompatibel dengan semua jenis video Instagram dan
              tautan gambar.
            </p>
          </div>
          <div class="list-tools-pc">
            <div class="tool-box flex_between">
              <div class="tool-info">
                <nuxt-link to="/id">
                  <div @click="goToTop('video')" class="tItem">
                    <h4>Pengunduh video Instagram</h4>
                  </div>
                </nuxt-link>
                <p>
                  Savinginsta dirancang untuk memungkinkan Anda mengunduh milik
                  Anda sendiri konten dari Instagram. Ini menawarkan dukungan
                  untuk mengunduh keduanya video individual dan beberapa dari
                  Insta.
                </p>
              </div>
              <div class="tool-thumb">
                <img
                  src="/static/images/instagram-video-downloader.webp"
                  alt="Instagram video downloader"
                />
              </div>
              <div class="tool-thumb-app">
                <img
                  src="/static/images/instagram-video-downloader-app.webp"
                  alt="Instagram video downloader"
                />
              </div>
            </div>
            <div class="tool-box tool-reverse flex_between">
              <div class="tool-info">
                <nuxt-link to="/id/instagram-photo-download">
                  <div @click="goToTop('Photo')" class="tItem">
                    <h4>Pengunduh foto Instagram</h4>
                  </div>
                </nuxt-link>
                <p>
                  Pengunduh Foto Instagram Savinginsta membuatnya mudah untuk
                  menyimpan satu atau beberapa foto, termasuk kolase, dari
                  Instagram. Dengan alat ini, unduh postingan individual gambar
                  atau kumpulan foto instagram yang sederhana dan mudah.
                </p>
              </div>
              <div class="tool-thumb">
                <img
                  loading="lazy"
                  src="/static/images/instagram-photo-downloader.webp"
                  alt="Instagram photo downloader"
                />
              </div>
              <div class="tool-thumb-app">
                <img
                  loading="lazy"
                  src="/static/images/instagram-photo-downloader-app.webp"
                  alt="Instagram photo downloader"
                />
              </div>
            </div>
            <div class="tool-box flex_between">
              <div class="tool-info">
                <nuxt-link to="/id/instagram-reels-video-download">
                  <div @click="goToTop('reels')" class="tItem">
                    <h4>Unduh Reel Instagram</h4>
                  </div>
                </nuxt-link>
                <p>
                  Pengunduh Reel Instagram dari Savinginsta memungkinkan Anda
                  melakukannya unduh video Reels dengan mudah dari postingan
                  Instagram ke perangkat Anda, memberikan solusi sederhana di
                  mana Instagram sendiri tidak menawarkan dukungan untuk fungsi
                  ini.
                </p>
              </div>
              <div class="tool-thumb">
                <img
                  loading="lazy"
                  src="/static/images/download-instagram-reels.webp"
                  alt="Download Instagram Reels"
                />
              </div>
              <div class="tool-thumb-app">
                <img
                  loading="lazy"
                  src="/static/images/download-instagram-reels-app.webp"
                  alt="Download Instagram Reels"
                />
              </div>
            </div>
            <div class="tool-box tool-reverse flex_between">
              <div class="tool-info">
                <nuxt-link to="/id/igtv-downloader">
                  <div @click="goToTop('igtv')" class="tItem">
                    <h4>Pengunduh IGTV</h4>
                  </div>
                </nuxt-link>
                <p>
                  Cerita Instagram menawarkan platform khusus bagi pengguna
                  untuk melakukannya berbagi pengalaman sehari-hari mereka
                  melalui foto dan video dengan a Khalayak luas. Terkadang, Anda
                  mungkin ingin menyimpan favorit cerita, tetapi fungsi ini
                  tidak tersedia di aplikasi. Savinginsta mengatasi masalah ini
                  dengan memberikan solusi itu memungkinkan pengguna mengunduh
                  dan melihat cerita Instagram dengan mudah offline, memastikan
                  konten yang berkesan tidak pernah hilang.
                </p>
              </div>
              <div class="tool-thumb">
                <img
                  loading="lazy"
                  src="/static/images/igtv-downloader.webp"
                  alt="IGTV downloader"
                />
              </div>
              <div class="tool-thumb-app">
                <img
                  loading="lazy"
                  src="/static/images/igtv-downloader-app.webp"
                  alt="IGTV downloader"
                />
              </div>
            </div>
            <div class="tool-box flex_between">
              <div class="tool-info">
                <nuxt-link to="/id/instagram-story-download">
                  <div @click="goToTop('story')" class="tItem">
                    <h4>Penampil Cerita Instagram</h4>
                  </div>
                </nuxt-link>
                <p>
                  IGTV menawarkan video berdurasi panjang, dan jika Anda tidak
                  bisa melihatnya segera, Anda memiliki opsi untuk
                  mendownloadnya Video IGTV ke PC Anda. Ini memungkinkan Anda
                  dengan nyaman kunjungi kembali dan nikmati nanti, bahkan tanpa
                  internet koneksi, dan menghilangkan kekhawatiran tentang
                  konten IGTV dihapus atau tidak tersedia.
                </p>
              </div>
              <div class="tool-thumb">
                <img
                  loading="lazy"
                  src="/static/images/instagram-story-download.webp"
                  alt="Instagram Story Download"
                />
              </div>
              <div class="tool-thumb-app">
                <img
                  loading="lazy"
                  src="/static/images/instagram-story-download-app.webp"
                  alt="Instagram Story Download"
                />
              </div>
            </div>
          </div>
          <div class="app-box">
            <div class="app-box__info">
              <h3 class="app-box__title f-21 fw700 c-000">
                Unduh dengan aplikasi Insta Downloader
              </h3>
              <p class="f-16 c-ccc">
                Aplikasi kami menawarkan solusi cepat dan sederhana untuk mengunduh
                 Video Instagram, menyediakan video berkualitas HD tanpa
                 tanda air.
              </p>
            </div>
            <div class="app-link">
              <a 
                  target="_blank" href="https://play.google.com/store/apps/details?id=ins.freevideodownload.pro">
                <img src="/static/images/google-play.webp" alt="Download app " />
              </a>
              <a href="https://apps.apple.com/us/app/repost-for-video-save-story/id6462401460"  target="_blank">
                <img src="/static/images/IOS.webp" alt="Download app " />
              </a>
            </div>
          </div>
          <div class="quick-info">
            <h3 class="f-32 c-000">
              SAVINGINSTA - PENGUNDUH INSTAGRAM ALAT TERBAIK
            </h3>
            <p class="f-16 c-ccc">
              Savinginsta menonjol sebagai pengunduh Instagram tingkat atas,
               dibuat secara ahli untuk mengunduh konten berkualitas tinggi dengan cepat
               Instagram. Saat mencari metode paling efektif untuk mengunduh
               Media Instagram, Pengunduh Savinginsta muncul sebagai yang terdepan
               solusi pihak ketiga.
            </p>
            <p class="f-16 c-ccc">
              Instagram, yang terkenal sebagai aplikasi berbagi foto paling populer di dunia,
               menyaksikan unggahan jutaan foto setiap hari. Untuk itu
               Saat ini, kebutuhan pengunduh video Instagram menjadi
               terbukti, memberikan solusi sempurna untuk kebutuhan mendesak Anda.
               Alat ini penting bagi siapa pun yang ingin melestarikannya
               konten Instagram favorit secara efisien.
            </p>
          </div>
          <div class="features c-fff">
            <h3 class="h3 fw700 f-21">
              Fitur Pengunduh video Instagram Savinginsta:
            </h3>
            <div class="attributes-list flex_between">
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Pengunduhan video Instagram Cepat, mudah, dan aman.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Anda dapat keluar dari akun Instagram Anda.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Hanya dengan satu klik tombol, Anda dapat mengunduh gambar Instagram
                   dan video.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Unduh dan simpan gambar dan video dalam kualitas aslinya
                   definisi dan kualitas.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Dari akun pribadi, unduh dan simpan video Instagram.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Kecepatan tinggi: Saat ini, Savinginsta menawarkan yang tercepat
                   kecepatan unduh.
                </div>
              </div>
            </div>
          </div>
          <div class="how">
            <div class="how-title">
              <h3 class="f-36 c-000 italic">
                Cara menggunakan Savinginsta Instagram Downloader untuk menyimpan dari IG
              </h3>
              <div class="note c-ccc f-16">
                Catatan: Pastikan video atau foto Instagram yang Anda inginkan
                 unduhan berasal dari akun publik.
              </div>
            </div>
            <div class="steps">
              <div class="step">
                <div class="one">
                  <span class="fw700 c-blue f-16">Langkah01:</span>
                  <span class="f-16 c-000"
                    >Salin URL Foto & Video Instagram</span
                  >
                </div>
                <div class="app-step">
                  <div class="fw700 c-000 f-16">Di Aplikasi Instagram:</div>
                  <div class="c-000 f-16">
                    Untuk iOS: Ketuk untuk mendapatkan URL foto Instagram.
                  </div>
                  <div class="c-000 f-16">
                    Untuk Android: Klik di atas postingan dan pilih 'Salin
                     URL Instagram', lalu tekan 'Salin URL Bagikan'. Tautannya akan menjadi
                     disalin ke papan klip Anda.
                  </div>
                  <div class="fw700 c-000 f-16">- Di PC/Mac:</div>
                  <div class="c-000 f-16">
                    Klik kanan pada tanggal video atau foto Instagram dan
                     pilih "Salin Alamat Tautan" untuk mengunduh konten Instagram
                     desktop Anda.
                  </div>
                </div>
              </div>
              <div class="step">
                <div class="one">
                  <span class="fw700 c-blue f-16">Langkah02:</span>
                  <span class="f-16 c-000">
                    Rekatkan URL ke Savinginsta.App</span
                  >
                </div>
                <div class="app-step">
                  <div class="c-000 f-16">
                    Arahkan ke Savinginsta.App - Instagram khusus
                     pengunduh.
                  </div>
                  <div class="c-000 f-16">
                    Salin dan tempel URL yang disalin ke bidang teks yang diberikan.
                  </div>
                </div>
              </div>
              <div class="step">
                <div class="one">
                  <span class="fw700 c-blue f-16">Langkah03:</span>
                  <span class="f-16 c-000">Mulai Pengunduhan</span>
                </div>
                <div class="app-step">
                  <div class="c-000 f-16">
                    Klik tombol "Unduh" untuk memulai video Instagram atau
                     proses pengunduhan foto.
                  </div>
                  <div class="fw700 c-000 f-16">
                    Informasi Penggunaan Penting
                  </div>
                  <div class="c-000 f-16">
                    Savinginsta dirancang terutama untuk mengunduh video dan
                     gambar dari akun Instagram Anda sendiri.
                  </div>
                  <div class="c-000 f-16">
                    Kami mengutamakan privasi pengguna dan berhak menolak
                     layanan jika alat kami digunakan untuk melanggar milik orang lain
                     privasi atau untuk mengakses materi yang tidak sah.
                  </div>
                </div>
              </div>
            </div>
            <div class="user-note f-16">
              <div class="app-tip"></div>
              Untuk pemahaman komprehensif tentang kebijakan kami

              <a class="fw700 c-blue" href="/terms-of-service">
                silakan baca Ketentuan Layanan lengkap kami di sini.</a
              >
            </div>
          </div>
          <div class="faq-section">
            <h3 class="faq-title f-36 c-000 italic">FAQ</h3>
            <div class="accordion">
              <div
                id="faq"
                itemscope="itemscope"
                itemtype="https://schema.org/FAQPage"
              >
                <div
                  itemprop="mainEntity"
                  itemscope="itemscope"
                  itemtype="https://schema.org/Question"
                  class="accordion-item"
                  :key="k"
                  v-for="(item, k) in faqList"
                >
                  <h4 itemprop="name" class="accordion-title fw700 f-16">
                    {{ item.title }}
                  </h4>
                  <div
                    itemprop="acceptedAnswer"
                    itemscope=""
                    itemtype="https://schema.org/Answer"
                  >
                    <div
                      itemprop="text"
                      class="accordion-text f-16 c-ccc fw400"
                    >
                      {{ item.content }}
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <!-- 解析结果 start -->
      <div class="container" v-if="success">
        <success-content
          @refresh="refresh"
          :list="successList"
        ></success-content>
      </div>
      <!-- 解析结果 end -->
    </main>
    <footer>
      <div class="container">
        <div class="footer-content">
          <div class="footer-link">
            <div class="row flex_between">
              <div class="col-12">
                <div class="link-label fw700 c-000 f-21">Peralatan</div>
                <ul class="list-unstyled c-ccc f-16">
                  <li @click="goToTools('story')">
                    <nuxt-link to="/id/instagram-story-download"
                      >Pengunduh Cerita Instagram</nuxt-link
                    >
                  </li>
                  <li @click="goToTools('reels')">
                    <nuxt-link to="/id/instagram-reels-video-download"
                      >Pengunduh Reel Instagram</nuxt-link
                    >
                  </li>
                  <li>
                    <a href="https://savingtik.com/" target="_blank"
                      >Pengunduh Tiktok</a
                    >
                  </li>
                </ul>
              </div>
              <div class="col-6">
                <div class="link-label fw700 c-000 f-21">Mendukung</div>
                <ul class="list-unstyled c-ccc f-16">
                  <li>
                    <nuxt-link to="/contact"> Kontak </nuxt-link>
                  </li>
                  <li>
                    <nuxt-link to="/blog"> Blog </nuxt-link>
                  </li>
                </ul>
              </div>
              <div class="col-6">
                <div class="link-label fw700 c-000 f-21">Hukum</div>
                <ul class="list-unstyled c-ccc f-16">
                  <li>
                    <nuxt-link to="/terms-of-service">
                      Ketentuan Layanan
                    </nuxt-link>
                  </li>
                  <li>
                    <nuxt-link to="/privacy-policy"> Kebijakan pribadi </nuxt-link>
                  </li>
                </ul>
              </div>
            </div>
          </div>
          <div class="copyright flex_ccenter">
            <b class="fw700 f-21 c-000"
              >Kami tidak berafiliasi dengan Instagram atau Meta</b
            >
            <div class="c-ccc f-16">
              © {{new Date().getFullYear()}} Insta Downloader All rights reserved.
            </div>
          </div>
        </div>
      </div>
    </footer>
  </div>
</template>

<script>
import { mapState, mapGetters, mapMutations } from "vuex";
import pageHeader from "~/components/page-header.vue";
import SuccessContent from "~/components/success-content.vue";
import CryptoJS from "crypto-js";
import { handleClick, checkString } from "@/plugins/Firebase.js";

export default {
  components: { pageHeader, SuccessContent },
  name: "IndexPage",
  head: {
    htmlAttrs: {
      lang: "id",
    },
    bodyAttrs: {
      "data-lang": "id",
    },
    title:
      "Pengunduh Instagram - Unduh Video Instagram online - Menyimpan Insta",
    meta: [
      { property: "og:locale", content: "id" },
      //Page Information
      {
        name: "description",
        content:
          "Savinginsta: Unduh video, reel, dan foto Instagram dengan mudah menggunakan alat kami yang mudah digunakan. Simpan video Instagram Anda dengan cepat dan aman di perangkat apa pun.",
      },
      //Schema.org Microdata
      {
        itemprop: "name",
        content:
          "Pengunduh Instagram - Unduh Video Instagram online - Menyimpan Insta",
      },

      // Facebook / OpenGraph
      {
        property: "og:title",
        content:
          "Pengunduh Instagram - Unduh Video Instagram online - Menyimpan Insta",
      },
      { property: "og:type", content: "website" },
      { property: "og:url", content: "https://savinginsta.com/id" },

      {
        property: "og:description",
        content:
          "Savinginsta: Unduh video, reel, dan foto Instagram dengan mudah menggunakan alat kami yang mudah digunakan. Simpan video Instagram Anda dengan cepat dan aman di perangkat apa pun.",
      },
      //Twitter
      { name: "twitter:card", content: "summary" },
      { name: "twitter:url", content: "https://savinginsta.com/id" },
      {
        name: "twitter:title",
        content:
          "Pengunduh Instagram - Unduh Video Instagram online - Menyimpan Insta",
      },
      {
        name: "twitter:description",
        content:
          "Savinginsta: Unduh video, reel, dan foto Instagram dengan mudah menggunakan alat kami yang mudah digunakan. Simpan video Instagram Anda dengan cepat dan aman di perangkat apa pun.",
      },
      //multilingual
      {
        name: "google",
        content: "notranslate",
      },
      {
        itemprop: "image",
        content: "https://savinginsta.com/static/images/savinginsta_thumbnail.jpg",
      },
      {
        property: "og:image",
        content: "https://savinginsta.com/static/images/savinginsta_thumbnail.jpg",
      },
      {
        name: "twitter:image",
        content: "https://savinginsta.com/static/images/savinginsta_thumbnail.jpg",
      },
    ],
    link: [
      //multilingual
      {
        rel: "alternate",
        hreflang: "x-default",
        href: "https://savinginsta.com/id",
      },
      {
        rel: "alternate",
        hreflang: "en",
        href: "https://savinginsta.com/",
      },
      {
        rel: "alternate",
        hreflang: "en-in",
        href: "https://savinginsta.com/in",
      },
      {
        rel: "alternate",
        hreflang: "vi",
        href: "https://savinginsta.com/vn",
      },
      {
        rel: "alternate",
        hreflang: "tr",
        href: "https://savinginsta.com/tr",
      },
      {
        rel: "alternate",
        hreflang: "id",
        href: "https://savinginsta.com/id",
      },
      {
        rel: "alternate",
        hreflang: "fr",
        href: "https://savinginsta.com/fr",
      },
      {
        rel: "alternate",
        hreflang: "pt",
        href: "https://savinginsta.com/pt",
      },
      {
        rel: "alternate",
        hreflang: "ru",
        href: "https://savinginsta.com/ru",
      },
      {
        rel: "alternate",
        hreflang: "es",
        href: "https://savinginsta.com/es",
      },
      {
        rel: "alternate",
        hreflang: "ms",
        href: "https://savinginsta.com/ms",
      },
      {
        rel: "alternate",
        hreflang: "ko",
        href: "https://savinginsta.com/ko",
      },
      {
        rel: "alternate",
        hreflang: "ja",
        href: "https://savinginsta.com/ja",
      },
      {
        rel: "alternate",
        hreflang: "jv",
        href: "https://savinginsta.com/jv",
      },
      {
        rel: "alternate",
        hreflang: "cs",
        href: "https://savinginsta.com/cs",
      },
      {
        rel: "alternate",
        hreflang: "de",
        href: "https://savinginsta.com/de",
      },
      {
        rel: "alternate",
        hreflang: "it",
        href: "https://savinginsta.com/it",
      },
      {
        rel: "alternate",
        hreflang: "pl",
        href: "https://savinginsta.com/pl",
      },
      {
        rel: "alternate",
        hreflang: "hu",
        href: "https://savinginsta.com/hu",
      },
      {
        rel: "alternate",
        hreflang: "nl",
        href: "https://savinginsta.com/nl",
      },
      {
        rel: "alternate",
        hreflang: "ro",
        href: "https://savinginsta.com/ro",
      },
      {
        rel: "alternate",
        hreflang: "el",
        href: "https://savinginsta.com/el",
      },
      {
        rel: "canonical",
        href: "https://savinginsta.com/id",
      },
    ],
    script: [
      {
        json: {
          "@context": "https://schema.org",
          "@type": "WebSite",
          name: "Pengunduh Instagram - Unduh Video Instagram online - Menyimpan Insta",
          url: "https://savinginsta.com",
          description:
            "Savinginsta: Unduh video, reel, dan foto Instagram dengan mudah menggunakan alat kami yang mudah digunakan. Simpan video Instagram Anda dengan cepat dan aman di perangkat apa pun.",
          publisher: {
            "@type": "Organization",
            name: "Savinginsta",
            logo: {
              "@type": "ImageObject",
              url: "https://savinginsta.com/static/images/logo.webp",
            },
          },
        },
        type: "application/ld+json",
      },
    ],
  },
  data() {
    return {
      input: "",
      success: false,
      isHttpLoading: false,
      httpError1: false,
      httpError2: false,
      current: 0,
      successList: [],
      faqList: [
        {
          title: `Apa itu Pengunduh Video Instagram?`,
          content: `Pengunduh Video Instagram adalah alat berbasis web yang dirancang untuk menyimpan foto, video, dan konten IGTV Instagram untuk digunakan nanti. Savinginsta menonjol sebagai pilihan utama untuk mengunduh konten dari Instagram dengan mudah.`,
        },
        {
          title: `Apakah Masuk ke Akun Instagram Saya Perlu Menggunakan Savinginsta?`,
          content: `Tidak, tidak perlu masuk ke akun Instagram Anda. Savinginsta memastikan pengunduhan yang aman dan anonim dari Instagram tanpa memerlukan informasi pribadi apa pun.`,
        },
        {
          title: `Bisakah Saya Langsung Menyimpan Video dari Instagram?`,
          content: `Mengunduh video secara langsung dari feed Instagram Anda atau Stories orang lain tidak dapat dilakukan melalui Instagram itu sendiri. Namun, Savinginsta menawarkan solusi sederhana. Kunjungi saja situs web mereka di https:// savinginsta.com dan ikuti instruksi langsung yang diberikan.`,
        },
        {
          title: `Apakah Layanan Download Video & Foto Instagram Gratis?`,
          content: `Ya, Savinginsta menyediakan layanan ini sepenuhnya gratis, tanpa batasan jumlah download.`,
        },
        {
          title: `Bisakah Saya Mengunduh Konten dari Akun Instagram Pribadi?`,
          content: `Memang, Savinginsta memungkinkan Anda mengunduh video, cerita, dan foto dari akun Instagram pribadi. Instruksi terperinci tersedia di platform mereka.`,
        },
        {
          title: `Mungkinkah Menyimpan Cerita Instagram?`,
          content: `Sangat. Dengan Savinginsta, Anda dapat melihat dan mengunduh cerita Instagram apa pun. Cukup klik tiga titik (⁝) di cerita, salin tautannya, dan tempelkan ke Savinginsta untuk memulai pengunduhan.`,
        },
        {
          title: `Apakah Savinginsta Mendukung Pengunduhan di Komputer?`,
          content: `Ya, Savinginsta sepenuhnya kompatibel dengan PC, memungkinkan Anda mengunduh video Instagram, foto, cerita, dan lainnya langsung ke komputer Anda.`,
        },
        {
          title: `Bisakah saya Menggunakan Savinginsta untuk Mengunduh dari Instagram di Perangkat Android?`,
          content: `Tentu. Bagi pengguna Android, cukup copy link postingan Instagram, paste ke Savinginsta, dan simpan. Untuk lebih jelasnya, kunjungi panduan mereka tentang mengunduh dari Instagram di Android.`,
        },
        {
          title: `Bagaimana Cara Mengunduh Video dan Foto Instagram di iPhone/iPad (iOS)?`,
          content: `Savinginsta telah membuat panduan langkah demi langkah yang mudah digunakan untuk mengunduh berbagai jenis video ke iPhone atau iPad Anda. Ikuti tautan ini untuk petunjuknya: Unduh Video Instagram di iPhone.`,
        },
        {
          title: `Bagaimana Jika Video Instagram Diputar Daripada Diunduh?`,
          content: `Untuk mengatasinya, klik kanan pada video dan pilih 'Simpan Sebagai...' untuk memilih lokasi penyimpanan yang Anda inginkan, daripada mengklik kiri.`,
        },
        {
          title: `Di Mana Video Disimpan Setelah Diunduh?`,
          content: `Video yang diunduh biasanya disimpan di folder 'Unduhan' di perangkat seluler Android dan PC.`,
        },
      ],
    };
  },
  computed: {
    ...mapGetters(["language"]),
  },
  mounted() {
    this.debouncedDownInput = this.debounce(this.downInput, 1000);

    //到达首页
    handleClick("guide_homepage_frist", {});
    handleClick("guide_homepage", {});
  },
  methods: {
    async downloadHandel() {
      if (this.isHttpLoading || this.input === "") return;
      this.isHttpLoading = false;
      this.httpError1 = false;
      this.httpError2 = false;
      this.input = this.input.replace(/^.*\s?https:\/\//, "https://");
      const insUrlPattern = new RegExp("^http(s|)://.*instagram.com.*/.*$");
      let type = checkString(this.input);
      if (!insUrlPattern.test(this.input)) {
        //点击解析下载按钮
        handleClick("action_ins_detect_boinsom", {
          site: "other",
          noislink: this.input,
          from: "video",
          type: type,
        });
        this.httpError2 = true;
        this.isHttpLoading = false;
        return;
      }
      //点击解析下载按钮
      handleClick("action_ins_detect_boinsom", {
        site: "other",
        from: "video",
        type: type,
      });
      //开始解析  ins_start_resolve
      handleClick("ins_start_resolve", {
        islink: this.input,
        from: "video",
        type: type,
      });
      this.isHttpLoading = true;
      try {
        let result = this.uki(this.input);
        const response = await fetch(
          "https://savinginsta.com/api/downloader/analysis",
          {
            method: "POST",
            headers: { "Content-Type": "application/json" },
            body: JSON.stringify({
              path: result,
            }),
          }
        );
        let encryptedResponse = await response.text();
        let parse = JSON.parse(encryptedResponse);
        if (parse.code != 200) {
          // 解析失败  ins_resolve_fail
          handleClick("ins_resolve_fail", {
            reason: "Failed to fetch",
            islink: this.input,
            from: "video",
            type: type,
          });
          this.httpError1 = true;
          this.isHttpLoading = false;
          return;
        } else {
          //解析成功  ins_resolve_success
          handleClick("ins_resolve_success", {
            type: type,
            from: "video",
          });
          let decryptedResponse = await this.eki(parse.data); // 使用你的解密函数
          this.successList = JSON.parse(decryptedResponse);
          this.success = true;
          this.isHttpLoading = false;
        }
      } catch (error) {
        // 解析失败  ins_resolve_fail
        handleClick("ins_resolve_fail", {
          reason: "Failed to fetch",
          islink: this.input,
          from: "video",
          type: type,
        });
        console.error(error);
        this.httpError1 = true;
        this.isHttpLoading = false;
      }
    },

    uki(input) {
      let CIPHER_ALGORITHM = "DES-CBC";
      let IV_SIZE = 8;
       
      
  try {
        const complexKey = [
          process.env.part1,
          process.env.part2,
          process.env.part3,
          process.env.part4,
          process.env.part5,
          process.env.part6,
          process.env.part7,
          process.env.part8,
        ].join("");
        const keyBytes = CryptoJS.enc.Utf8.parse(complexKey);
        const inputBytes = CryptoJS.enc.Utf8.parse(input);
        const ivBytes = CryptoJS.lib.WordArray.random(IV_SIZE);
        const encrypted = CryptoJS.DES.encrypt(inputBytes, keyBytes, {
          iv: ivBytes,
          mode: CryptoJS.mode.CBC,
          padding: CryptoJS.pad.Pkcs7,
        });
        const ciphertext = ivBytes.concat(encrypted.ciphertext);
        return ciphertext.toString();
      } catch (error) {
        console.error(error);
        return null;
      }
    },
    eki(cipherText) {
      let CIPHER_ALGORITHM = "DES-CBC";
      let IV_SIZE = 8;
       
      const complexKey = [
          process.env.part1,
          process.env.part2,
          process.env.part3,
          process.env.part4,
          process.env.part5,
          process.env.part6,
          process.env.part7,
          process.env.part8,
        ].join("");
      try {
        let keyBytes = CryptoJS.enc.Utf8.parse(
          complexKey.padEnd(CIPHER_ALGORITHM === "DES-CBC" ? 8 : 16)
        );
        let ivBytes = { iv: CryptoJS.enc.Hex.parse(process.env.DES_IV) }; // 如果使用CBC模式，需要一个初始化向量iv，这里是空向量
        let decrypted = CryptoJS.DES.decrypt(
          { ciphertext: CryptoJS.enc.Hex.parse(cipherText) },
          keyBytes,
          ivBytes
        );
        return decrypted.toString(CryptoJS.enc.Utf8);
      } catch (e) {
        console.error(e);
        return null;
      }
    },
    sendDownload(event) {
      if (event.keyCode === 13 && !this.isHttpLoading) {
        this.downloadHandel();
        event.preventDefault();
        return false;
      }
    },
    changeTab(k) {
      this.current = k;
    },
    handleInput(e) {
      this.debouncedDownInput(e);
    },
    debounce(fn, delay) {
      let timer;
      return function () {
        let context = this;
        let args = arguments;
        clearTimeout(timer);
        timer = setTimeout(() => {
          fn.apply(context, args);
        }, delay);
      };
    },

    downInput(e) {
      let type = checkString(e.target.value);
      // 粘贴链接到输入框 action_ins_paste
      handleClick("action_ins_paste", {
        islink: e.target.value,
        from: "photo",
        type: type,
      });
    },
    handleClickPasted() {
      if (!navigator.clipboard) {
        console.log("Clipboard API not available");
        return;
      }
      navigator.clipboard
        .readText()
        .then((text) => {
          this.input = text;
          let type = checkString(text);
          // 粘贴链接到输入框 action_ins_paste
          handleClick("action_ins_paste", {
            islink: text,
            from: "photo",
            type: type,
          });
        })
        .catch((err) => {
          console.error("Failed to read clipboard contents: ", err);
        });
    },
    showLanguageHandel() {
      this.$refs.languageRef.close();
    },
    refresh() {
      this.success = false;
      this.input = "";
      this.successList = [];
    },
    goToTop(site) {
      //切换页面
      handleClick("action_page_switch", {
        site: site,
        from: top,
      });
    },
    goToTools(site) {
      //切换页面
      handleClick("action_page_switch", {
        site: site,
        from: tools,
      });
    },
  },
};
</script>
<style lang="scss" scoped>
@import "@/static/style/index.css";
.loading {
  .loading-dots {
    position: relative;
    z-index: 999;
    margin-top: 70px;
  }

  .dot {
    background-color: #ffffff;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin: 0 10px;
    animation: loading-animation 1.5s infinite;
  }

  .dot:nth-child(2) {
    animation-delay: 0.5s;
  }

  .dot:nth-child(3) {
    animation-delay: 0.8s;
  }
  .dot:nth-child(4) {
    animation-delay: 1s;
  }
}
@keyframes loading-animation {
  0%,
  50%,
  80%,
  100% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.5);
  }
}
@media (max-width: 768px) {
  .loading {
    .loading-dots {
      margin-top: 26px !important;
    }
    .dot {
      width: 8px !important;
      height: 8px !important;
    }
  }
}
</style>
